package com.ihr360.cnb.module.insurance.service;

import com.ihr360.commons.vo.PageData;
import com.ihr360.insurance.entity.request.StaffLedgerRequest;
import com.ihr360.insurance.entity.response.LedgerResponse;
import com.ihr360.insurance.entity.vo.StaffBenefitVo;

import javax.servlet.ServletOutputStream;

/**
 * @author Stone.Shi
 * @description
 * @date 2018-05-23 19:44:58.
 */
public interface MonthlyLedgerAggregateService {

    /**
     * 获取可添加到社保公积金台账中的员工数据
     *
     * @param companyId
     * @param userId
     * @param request
     * @param authorityCode
     * @return
     */
    PageData<StaffBenefitVo> getCanAddToLedgerStaffs(String companyId, String userId, StaffLedgerRequest request, String authorityCode);

    /**
     * 添加所有员工到台账
     *
     * @param companyId
     * @param userId
     * @param ledgerYear
     * @param ledgerMonth
     * @param authorityCode
     * @return
     */
    LedgerResponse addAllLedgerStaff(String companyId, String userId, Integer ledgerYear, Integer ledgerMonth, String authorityCode);

    /**
     * 导出
     *
     * @param companyId
     * @param userId
     * @param requestString json格式的请求
     * @param outputStream
     */
    void exportExcel(String companyId, String userId, String requestString, ServletOutputStream outputStream);
}
